package interfaces;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.ArrayList;

public interface ProductList extends Remote {
	/**
	 * Returns a Product by the specified name
	 * 
	 * @param name	Product name
	 * @return
	 * @throws RemoteException
	 */
	public Product get( String name ) throws RemoteException;
	
	/**
	 * Returns a Product list, filtered by category
	 * @param categoryId	Id of category to filter by
	 * @return				Product list
	 * @throws RemoteException
	 */
	public ArrayList<Product> getProductListByCategory( int categoryId ) throws RemoteException;
	
	/**
	 * Returns the entire Product list
	 * @return
	 * @throws RemoteException
	 */
	public ArrayList<Product> getProductList() throws RemoteException;
	
	/**
	 * Returns the Product by the specified name
	 * 
	 * @param name	Product name
	 * @return
	 * @throws RemoteException
	 */
	public Product getProduct( String name ) throws RemoteException;
}
